package jp.veeva.jtsyka.service;

import java.util.List;

import jp.veeva.jtsyka.model.Organization;
import jp.veeva.jtsyka.model.TreeNodes;
import jp.veeva.jtsyka.model.WhsmstKey;

public interface OrganizationService {
    
    //組織情報を取得。
    Organization getOrgByWhsCd(String whsCd);
    //組織Tree情報を取得。
    TreeNodes getOrgTreeByWhsCd(String whsCd);

    /**
     * ユーザー一覧を取得する。
     * @param customerCd
     * @return ユーザーに所属する卸会社
     */
    List<Organization> listWhsCompany(String customerCd);

    /**
     * 卸会社詳細情報を取得する。
     * @param whsmstKey
     * @return 卸会社詳細情報
     */
    List<String> listOrganization(WhsmstKey whsmstKey);

    /**
     * 組織関係ツリーを取得する。
     * @param whsCd
     * @param id 
     * @return 組織情報
     */
    List<String> listOrganizationRel(String whsCd, String id);

    /**
     * 特定組織ノードのツリーを取得する。
     * @param whsCd
     * @param 組織ノード id
     * @return 組織情報
     */
    List<String> refreshOrganizationTree(String whsCd, String id);
    
    /**
     * 組織を追加する
     * @param organization
     * @return 結果 true/false
     */
    boolean addOrganization(Organization organization);

}
